package com.dnjn.happiness.survey.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dnjn.happiness.common.core.annotation.Excel;
import com.dnjn.happiness.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 考核题目对象 svy_check_question
 *
 * @author happiness
 * @date 2024-04-02
 */
@Schema(name = "CheckQuestion", description = "考核题目")
@Accessors(chain = true)
@Getter
@Setter
@TableName("svy_check_question")
public class CheckQuestion extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * PK
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId(value = "question_id", type = IdType.ASSIGN_ID)
    private Long questionId;

    


    /**
     * select-选择;pack填空
     */
    @Schema(description = "select-选择;pack填空")
    @Excel(name = "select-选择;pack填空")
    private String isSelectPack;

    /**
     * 是否多选 Y-N
     */
    @Schema(description = "是否多选 Y-N")
    @Excel(name = "是否多选 Y-N")
    private String isMultipleChoice;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String title;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionA;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionA;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionB;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionB;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionC;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionC;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionD;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionD;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionE;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionE;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionF;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionF;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String optionG;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer scoreOptionG;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String answer;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long ordinal;

    /**
     * 考核表id
     */
    @Schema(description = "考核表id")
    @Excel(name = "考核表id")
    private Long checkId;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long siteId;

    /**
     * $column.columnComment
     */
    @Schema(description = "${comment}")
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long tikuId;

    /**
     * 是否删除|0-否 1-是|valid
     */
    @Schema(description = "是否删除|0-否 1-是|valid")
    @Excel(name = "是否删除|0-否 1-是|valid")
    private String deleted;


    /**
     *
     */
    @Schema(description = "owl;koala;peacock;chameleon;tiger")
    private String answerType;

    /**
     *
     */
    @Schema(description = "number;word")
    private String answerScoreType;

    /**
     *
     */
    @Schema(description = "选项a字母分值")
    private String wordScoreOptionA;

    /**
     *
     */
    @Schema(description = "选项b字母分值")
    private String wordScoreOptionB;

    /**
     *
     */
    @Schema(description = "选项c字母分值")
    private String wordScoreOptionC;

    /**
     *
     */
    @Schema(description = "选项d字母分值")
    private String wordScoreOptionD;

    /**
     *
     */
    @Schema(description = "选项e字母分值")
    private String wordScoreOptionE;

    /**
     *
     */
    @Schema(description = "选项f字母分值")
    private String wordScoreOptionF;

    /**
     *
     */
    @Schema(description = "选项g字母分值")
    private String wordScoreOptionG;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("questionId", getQuestionId())
                .append("isSelectPack", getIsSelectPack())
                .append("isMultipleChoice", getIsMultipleChoice())
                .append("title", getTitle())
                .append("optionA", getOptionA())
                .append("scoreOptionA", getScoreOptionA())
                .append("optionB", getOptionB())
                .append("scoreOptionB", getScoreOptionB())
                .append("optionC", getOptionC())
                .append("scoreOptionC", getScoreOptionC())
                .append("optionD", getOptionD())
                .append("scoreOptionD", getScoreOptionD())
                .append("optionE", getOptionE())
                .append("scoreOptionE", getScoreOptionE())
                .append("optionF", getOptionF())
                .append("scoreOptionF", getScoreOptionF())
                .append("optionG", getOptionG())
                .append("scoreOptionG", getScoreOptionG())
                .append("answer", getAnswer())
                .append("ordinal", getOrdinal())
                .append("checkId", getCheckId())
                .append("siteId", getSiteId())
                .append("tikuId", getTikuId())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("deleted", getDeleted())
                .append("version", getVersion())
                .toString();
    }
}
